home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS11.ADF / AmigaBasicProgs / Slot.MSB (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-08-05  |  8KB  |  366 lines

  1. CLS
  2. SCREEN 2,640,200,4,2
  3. WINDOW 2,,,0,2
  4. WINDOW OUTPUT 2
  5. CLEAR
  6. RANDOMIZE TIMER
  7. PALETTE 0,0,0,0.5
  8. PALETTE 1,1,1,1
  9. PALETTE 2,0,0,0
  10. PALETTE 3,0.6,0.6,0.6
  11. PALETTE 5,0.8,0,0
  12. PALETTE 6,0,0.6,0
  13. PALETTE 7,0.8,0,0.8
  14. PALETTE 8,1,0.8,0
  15. PALETTE 9,1,0.6,0.1
  16. PALETTE 10,1,0.5,0
  17. PALETTE 11,0.3,0.3,0.3
  18. PALETTE 12,0.3,0,0
  19.  
  20. GOSUB title
  21.  
  22. CLS
  23. x=20:y=10:p=5
  24. GOSUB vstitle 
  25.   
  26. handle:
  27.   LINE (550,140)-(600,190),1,b
  28.   PAINT STEP (5,5),6,1
  29.   LINE (575,140)-(600,45),1,b
  30.   PAINT STEP(5,5),6,1
  31.   LINE (576,140)-(599,140),6
  32.   CIRCLE (587,30),35,1,,,0.44
  33.   PAINT STEP (0,0),2,1
  34.   LINE (580,32)-(595,39),5,bf
  35.   LINE (586,35)-(589,36),2,bf
  36.   LOCATE 4,72:COLOR 1,2
  37.   PRINT "pull":COLOR 1,0
  38.  
  39. GOSUB drawboxes
  40.  
  41. coinslot:
  42.   CIRCLE (400,30),50,1,,,0.44  
  43.   CIRCLE (400,0),70,1,4.71-0.7,4.71+0.7,0.44
  44.   CIRCLE (400,0),60,1,4.71-0.8,4.71+0.8,0.44
  45.   PAINT STEP (0,20),12,1
  46.   PAINT STEP (0,10),2,1
  47.   PAINT STEP (0,20),11,1
  48.   LOCATE 3,50:COLOR 1,12
  49.   PRINT "$1":COLOR 1,0
  50.  
  51. quitspot:
  52.   LINE (5,185)-(20,192),1,b
  53.   LINE (11,188)-(14,189),1,bf
  54.   PAINT STEP(-2,-2),2,1
  55.   LOCATE 24,4
  56.   PRINT "quit";
  57.  
  58. GOSUB winbox
  59.  
  60. mousecheck:
  61.   IF MOUSE(0)<>0 AND MOUSE(5)>5 AND MOUSE(5)<20 AND MOUSE(6)>185 AND MOUSE(6)<192 THEN GOTO fin
  62.   IF MOUSE(0)<>0 AND MOUSE(5)>580 AND MOUSE(5)<595 AND MOUSE(6)>32 AND MOUSE(6)<39 THEN GOTO play
  63.   IF MOUSE(0)<>0 AND MOUSE(5)>550 AND MOUSE(5)<552 AND MOUSE(6)>140 AND MOUSE(6)<142 THEN GOSUB fakejack
  64.   GOTO mousecheck
  65.  
  66. fakejack:
  67.   turns=turns+1
  68.   GOSUB drawboxes
  69.   GOSUB winbox
  70.   x=80:GOSUB bar
  71.   x=260:GOSUB bar
  72.   x=440:GOSUB bar
  73.   a=6:b=6:c=6
  74.   GOSUB pay
  75.   GOSUB printpay
  76.   RETURN
  77.      
  78. play:
  79.   turns=turns+1
  80.   GOSUB drawboxes
  81.   GOSUB winbox
  82.   x=80
  83.   GOSUB roll
  84.   a=n
  85.   x=260
  86.   GOSUB roll
  87.   b=n
  88.   x=440 
  89.   GOSUB roll
  90.   c=n
  91.   
  92.   GOSUB pay
  93.   GOSUB printpay
  94.   GOTO mousecheck
  95.  
  96. winbox:
  97.   LINE (175,140)-(425,170),1,b
  98.   LINE (176,141)-(424,169),11,bf
  99.   RETURN
  100.   
  101.  
  102. pay:
  103.   IF a=6 AND b=6 AND c=6 THEN p$="THE JACKPOT - $1,000":money=money+1000:RETURN
  104.   IF a=5 AND b=5 AND c=5 THEN p$="$18":money=money+18:RETURN
  105.   IF a=5 AND b=5 AND c=6 THEN p$="$18":money=money+18:RETURN
  106.   IF a=4 AND b=4 AND c=4 THEN p$="$14":money=money+14:RETURN
  107.   IF a=4 AND b=4 AND c=6 THEN p$="$14":money=money+14:RETURN  
  108.   IF a=3 AND b=3 AND c=3 THEN p$="$10":money=money+10:RETURN
  109.   IF a=3 AND b=3 AND c=6 THEN p$="$10":money=money+10:RETURN
  110.   IF a=2 AND b=2 AND c=2 THEN p$="$6":money=money+6:RETURN
  111.   IF a=2 AND b=2 AND c=6 THEN p$="$6":money=money+6:RETURN
  112.   IF a=2 AND b=2 THEN p$="$4":money=money+4:RETURN
  113.   IF a=2 THEN p$="$2":money=money+2:RETURN
  114.   p$="":RETURN
  115.  
  116. printpay:
  117.   LOCATE 20,33
  118.   IF p$="" THEN RETURN
  119.   IF p$="THE JACKPOT - $1,000" THEN LOCATE 20,25
  120.   PRINT "You win ";p$
  121.   IF p$="THE JACKPOT - $1,000" THEN GOSUB jack
  122.   RETURN  
  123.  
  124. jack:
  125.   FOR y=0 TO 50
  126.   FOR x=1000 TO 100 STEP -200
  127.   SOUND x,1,255,INT(RND*3+1)
  128.   PALETTE 0,RND,RND,RND
  129.   NEXT x
  130.   NEXT y
  131.   PALETTE 0,0,0,0.5
  132.   RETURN
  133.  
  134. fin:
  135.   
  136.   CLS
  137.   LOCATE 5,25
  138.   PRINT "Thank You for playing SLOTMACHINE"  
  139.   LOCATE 10,28
  140.   PRINT "You spent $";turns
  141.   LOCATE 12,28
  142.   PRINT "and your winnings were $";money;"."
  143.   LOCATE 20,25
  144.   PRINT "Press any key to end."
  145. checkend:
  146.   zzz$=INKEY$:IF zzz$="" THEN GOTO checkend
  147.   WINDOW CLOSE 2:SCREEN CLOSE 2
  148.   END 
  149.     
  150. orange:
  151.   CIRCLE (x+50,107),25,2,,,0.44
  152.   PAINT STEP (0,0),10,2
  153.   CIRCLE STEP (5,-6),4,2,,,0.22
  154.   RETURN
  155.  
  156. cherry:
  157.   CIRCLE (x+35,108),20,2,,,0.44
  158.   PAINT STEP (0,0),5,2
  159.   CIRCLE STEP (30,10),40,6,1,2.1,0.44
  160.   CIRCLE STEP (0,0),39,6,1,2.1,0.44
  161.   RETURN
  162.   
  163. plum:
  164.   CIRCLE (x+35,108),30,2,,,0.3
  165.   PAINT STEP (0,0),7,2
  166.   CIRCLE STEP (33,15),40,2,0.8,1.7,0.44
  167.   CIRCLE STEP (0,0),39,2,0.8,1.7,0.44
  168.   RETURN
  169.  
  170. bar:
  171.   IF x=80 THEN c=15
  172.   IF x=260 THEN c=37
  173.   IF x=440 THEN c=60
  174.   LINE (x,98)-(x+100,98),2
  175.   LINE (x,100)-(x+100,114),2,bf
  176.   LINE (x,116)-(x+100,116),2
  177.   COLOR 1,2
  178.   LOCATE 14,c:PRINT "B A R"
  179.   COLOR 1,0
  180.   RETURN
  181.   
  182. bell:
  183.   CIRCLE (x+50,101),20,2,0,3.14,0.44
  184.   LINE STEP (-20,0)-STEP(0,4),2 
  185.   LINE STEP (40,-4)-STEP(0,4),2
  186.   CIRCLE STEP (20,0),20,2,3.14,4.71,0.44
  187.   CIRCLE STEP (-80,0),20,2,4.71,6.28,0.44
  188.   CIRCLE STEP (40,-40),120,2,4.71-0.35,4.71+0.35,0.44
  189.   PAINT STEP(0,40),9,2
  190.   CIRCLE STEP (0,15),5,2,,,0.44
  191.   PAINT STEP (0,0),9,2
  192.   RETURN
  193.   
  194. lemon:
  195.   CIRCLE (x+50,107),30,2,,,0.3
  196.   PAINT STEP (0,0),8,2
  197.   CIRCLE STEP(25,0),2,2,,,0.66 
  198.   RETURN
  199.  
  200. roll:
  201.   r=INT(RND*100)+1
  202.   IF r>89 THEN n=6:GOSUB bar:RETURN
  203.   IF r<90 AND r>72 THEN n=5:GOSUB bell:RETURN
  204.   IF r<73 AND r>54 THEN n=4:GOSUB plum:RETURN
  205.   IF r<55 AND r>36 THEN n=3:GOSUB orange:RETURN
  206.   IF r<37 AND r>18 THEN n=2:GOSUB cherry:RETURN
  207.   IF r<19 THEN n=1:GOSUB lemon:RETURN
  208.  
  209. drawboxes:
  210.   FOR x=80 TO 440 STEP 180
  211.   LINE (x-20,90)-(x+120,125),3,bf
  212.   LINE (x-20,90)-(x+120,125),1,b
  213.   NEXT x
  214.   RETURN
  215.  
  216. vstitle: 
  217.  
  218. LINE (x,y)-STEP(10,0) 
  219. LINE STEP(0,0)-STEP(10,10) 
  220. LINE STEP(0,0)-STEP(10,-10)
  221. LINE STEP(0,0)-STEP(10,0)
  222. LINE STEP(0,0)-STEP(-20,20)
  223. LINE STEP(0,0)-STEP(-20,-20)
  224. PAINT STEP(5,2),p,1
  225.  
  226. LINE (x+50,y)-STEP(30,0)
  227. LINE STEP(0,0)-STEP(0,5)
  228. LINE STEP(0,0)-STEP(-20,0)
  229. LINE STEP(0,0)-STEP(0,3)
  230. LINE STEP(0,0)-STEP(10,0)
  231. LINE STEP(0,0)-STEP(0,4)
  232. LINE STEP(0,0)-STEP(-10,0)
  233. LINE STEP(0,0)-STEP(0,3)
  234. LINE STEP(0,0)-STEP(20,0)
  235. LINE STEP(0,0)-STEP(0,5)
  236. LINE STEP(0,0)-STEP(-30,0)
  237. LINE STEP(0,0)-STEP(0,-20)
  238. PAINT STEP(2,2),p,1
  239.  
  240. LINE (x+90,y)-STEP(30,0)
  241. LINE STEP(0,0)-STEP(0,5)
  242. LINE STEP(0,0)-STEP(-20,0)
  243. LINE STEP(0,0)-STEP(0,10)
  244. LINE STEP(0,0)-STEP(10,0)
  245. LINE STEP(0,0)-STEP(0,-3)
  246. LINE STEP(0,0)-STEP(-4,0)
  247. LINE STEP(0,0)-STEP(0,-4)
  248. LINE STEP(0,0)-STEP(14,0)
  249. LINE STEP(0,0)-STEP(0,12)
  250. LINE STEP(0,0)-STEP(-30,0)
  251. LINE STEP(0,0)-STEP(0,-20)
  252. PAINT STEP (2,2),p,1
  253.  
  254. LINE (x+140,y)-STEP(20,0)
  255. LINE STEP(0,0)-STEP(10,20)
  256. LINE STEP(0,0)-STEP(-10,0)
  257. LINE STEP(0,0)-STEP(-4,-7)
  258. LINE STEP(0,0)-STEP(-12,0)
  259. LINE STEP(0,0)-STEP(-4,7)
  260. LINE STEP(0,0)-STEP(-10,0)
  261. LINE STEP(0,0)-STEP(10,-20)
  262. LINE STEP(5,9)-STEP(2,-3)
  263. LINE STEP(0,0)-STEP(4,0)
  264. LINE STEP(0,0)-STEP(3,4)
  265. LINE STEP(0,0)-STEP(-8,0)
  266. PAINT STEP(0,2),p,1
  267.  
  268. LINE (x+180,y)-STEP(30,0)
  269. LINE STEP(0,0)-STEP(0,5)
  270. LINE STEP(0,0)-STEP(-20,0)
  271. LINE STEP(0,0)-STEP(0,3)
  272. LINE STEP(0,0)-STEP(20,0)
  273. LINE STEP(0,0)-STEP(0,12)
  274. LINE STEP(0,0)-STEP(-30,0)
  275. LINE STEP(0,0)-STEP(0,-5)
  276. LINE STEP(0,0)-STEP(20,0)
  277. LINE STEP(0,0)-STEP(0,-3)
  278. LINE STEP(0,0)-STEP(-20,0)
  279. LINE STEP(0,0)-STEP(0,-12)
  280. PAINT STEP(2,2),p,1
  281.  
  282. LINE (x+20,y+30)-STEP(40,0)
  283. LINE STEP(0,0)-STEP(0,10)
  284. LINE STEP(0,0)-STEP(-20,0)
  285. LINE STEP(0,0)-STEP(0,5)
  286. LINE STEP(0,0)-STEP(20,0)
  287. LINE STEP(0,0)-STEP(0,20)
  288. LINE STEP(0,0)-STEP(-40,0)
  289. LINE STEP(0,0)-STEP(0,-10)
  290. LINE STEP(0,0)-STEP(20,0)
  291. LINE STEP(0,0)-STEP(0,-5)
  292. LINE STEP(0,0)-STEP(-20,0)
  293. LINE STEP(0,0)-STEP(0,-20)
  294. PAINT STEP(2,2),p,1
  295.  
  296. LINE (x+70,y+30)-STEP(20,0)
  297. LINE STEP(0,0)-STEP(0,25)
  298. LINE STEP(0,0)-STEP(20,0)
  299. LINE STEP(0,0)-STEP(0,10)
  300. LINE STEP(0,0)-STEP(-40,0)
  301. LINE STEP(0,0)-STEP(0,-35)
  302. PAINT STEP(2,2),p,1
  303.  
  304. LINE(x+120,y+30)-STEP(40,0)
  305. LINE STEP(0,0)-STEP(0,35)
  306. LINE STEP(0,0)-STEP(-40,0)
  307. LINE STEP(0,0)-STEP(0,-35)
  308. LINE STEP(10,10)-STEP(20,0)
  309. LINE STEP(0,0)-STEP(0,15)
  310. LINE STEP(0,0)-STEP(-20,0)
  311. LINE STEP(0,0)-STEP(0,-15)
  312. PAINT STEP(-2,-2),p,1
  313.  
  314. LINE (x+170,y+30)-STEP(40,0)
  315. LINE STEP(0,0)-STEP(0,10)
  316. LINE STEP(0,0)-STEP(-14,0)
  317. LINE STEP(0,0)-STEP(0,25)
  318. LINE STEP(0,0)-STEP(-12,0)
  319. LINE STEP(0,0)-STEP(0,-25)
  320. LINE STEP(0,0)-STEP(-14,0)
  321. LINE STEP(0,0)-STEP(0,-10)
  322. PAINT STEP(2,2),p,1
  323. RETURN
  324.  
  325. title:
  326.   x=195:y=15:p=5
  327.   GOSUB vstitle
  328.   GOSUB drawboxes
  329.   FOR x=80 TO 440 STEP 180
  330.   GOSUB bar
  331.   NEXT x
  332.   LOCATE 18,39:PRINT "by"
  333.   LOCATE 20,33:PRINT "KIP H. HAMMOND"
  334.   LOCATE 23,20
  335.   PRINT "Press 'I' for Instructions, or 'P' to Play.";
  336.   checkkey:
  337.     zz$=UCASE$(INKEY$)
  338.     IF zz$="P" THEN RETURN
  339.     IF zz$="I" THEN GOTO instructions
  340.     IF zz$="Q" THEN WINDOW CLOSE 2:END
  341.     GOTO checkkey
  342.  
  343. instructions:
  344.   CLS
  345.   LOCATE 3,27:PRINT "* * * * SLOTMACHINE * * * *"
  346.   LOCATE 5,39:PRINT "by"
  347.   LOCATE 7,33:PRINT "Kip H. Hammond"
  348.   LOCATE 10,5
  349.   PRINT "To pull the Slotmachine's handle, just click the left mouse button on the"
  350.   PRINT "'PULL' gadget on top of the handle.  To QUIT, just click the 'QUIT' gadget"
  351.   PRINT "and you will get a summary of your winnings (or losings!)."
  352.   PRINT :PRINT 
  353.   PRINT "  Payoffs are similar to Las Vegas slotmachine payoffs for the same rolls."
  354.   PRINT "The odds of hitting a BAR in any window are 10 to 1, which makes the odds"
  355.   PRINT "of hitting a Jackpot, three BARS, 1000 to 1."
  356.   LOCATE 19,23:PRINT "* * * *  GOOD LUCK !!  * * * *"
  357.   
  358.   LOCATE 22,25:PRINT  "Press any key to continue.";
  359.   checkkey2:
  360.   zz$=""
  361.   zz$=UCASE$(INKEY$)
  362.   IF zz$="" THEN GOTO checkkey2 :ELSE RETURN
  363.   
  364.   
  365.   RETURN    
  366.